package com.jisf.driver.service;

import com.jisf.driver.entity.po.RoleMenu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jisf.driver.entity.vo.AllotMenusVo;
import com.jisf.driver.entity.vo.MenuListVo;
import com.jisf.driver.response.IErrorCode;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author jisf
 * @since 2022-04-08
 */
public interface IRoleMenuService extends IService<RoleMenu> {

    /**
     *
     * 删除角色的权限
     * @param roleId
     * @param menuId
     * @return
     */
    IErrorCode deleteRoleMenu(Integer roleId, Integer menuId);

    /**
     * 根据角色id获取对应权限
     * @param roleId
     * @return 角色权限更新后的权限数据
     */
    List<MenuListVo> findRoleMenus(Integer roleId);

    /**
     * 为角色分配权限
     * @param allotMenusVo
     * @return
     */
    IErrorCode allotMenus(AllotMenusVo allotMenusVo);

    /**
     * 计算需要删除的xxx和需要新增的xxx
     * @param idsVo 前端传来的数据（新增）
     * @param idsPo 数据库中的数据（删除）
     */
    void calculateInsertDelete(List<Integer> idsVo, List<Integer> idsPo);

}
